/*
 * Siege.cpp
 *
 *  Created on: 23 mars 2012
 *      Author: root
 */

#include "Siege.h"
#include "Parking.h"
#include <fstream>
#include <iostream>

using namespace std;

Siege::Siege()
{
ParkingFileName="txt/Parking_Fichier.txt";
AgenceFileName="txt/Agence_Fichier.txt";
SiegeFileName="txt/Siege_Fichier.txt";
VehiculeFileName="txt/Fichier_Vehicule.txt";
Vehicule_utilitaireFileName="txt/Vehicule_Utilitaire.txt";
Vehicule_touristiqueFileName="txt/Vehicule_touristique.txt";
FileNameTemp="txt/temp.txt";
}

Siege::Siege(long IdentifiantAdmin,string NomAdmin,string login,string Password,string Adresse,
	long Tel)
{

	this->IdentifiantAdmin=IdentifiantAdmin;
	this->NomAdmin=NomAdmin;
	this->login=login;
	this->Password=Password;
	this->Adresse=Adresse;
	this->Tel=Tel;
	this->ParkingFileName="Parking_Fichier.txt";
	this->AgenceFileName="Agence_Fichier.txt";
	this->SiegeFileName="Siege_Fichier.txt";
	this->VehiculeFileName="Fichier_Vehicule.txt";
	this->Vehicule_utilitaireFileName="Vehicule_Utilitaire.txt";
	this->Vehicule_touristiqueFileName="Vehicule_touristique.txt";
	this->FileNameTemp="temp.txt";

}
long Siege::getIdentifiantAdmin() const
	{
	    return IdentifiantAdmin;
	}

void Siege::setIdentifiantAdmin(long Identifiant)
{
	this->IdentifiantAdmin=Identifiant;
}

string Siege::getNomAdmin()const
	{
	    return NomAdmin;
	}

void Siege::setNomAdmin(string Nom)
{
	this->NomAdmin=Nom;
}

string Siege::getlogin()const
	{
	    return login;
	}

void Siege::setlogin(string log)
{
	this->login=log;
}

string Siege::getPassword()const
	{
	    return Password;
	}

void Siege::setPassword(string password)
{
	this->Password=password;
}

string Siege::getAdresse()const
	{
	    return Adresse;
	}

void Siege::setAdresse(string adress)
{
	this->Adresse=adress;
}

long Siege::getTel()const
	{
	    return Tel;
	}

void Siege::setTel(long telephonne)
{
	this->Tel=telephonne;
}
Siege::~Siege() {}
/////////////////////////////////////////////////////////////////V parking/////////////////////////////////////////////////////////////////////////
bool Siege::VerifierExistanceParking(long NumParking)
{
ifstream myfile;
Parking P;
myfile.open(ParkingFileName.c_str());

if(!myfile.is_open())
{	cout<<"* Impossible d'ouvrir le Fichier : Fichier_Agence                                 *"<<endl;
	return false;
}

while(!myfile.eof())
{
	myfile>>P;
	if(P.getNumParking()==NumParking)
	{	myfile.close();
		return false;
	}
}	
myfile.close();
return true;
}
///////////////////////////////////////////////////////////////A parking///////////////////////////////////////////////////////////////////////////
bool Siege::AjouterParking(const Parking& P)
{
ofstream myfile;
myfile.open(ParkingFileName.c_str(),ios::app);

if(!myfile.is_open())
{	cout<<"impossible d'ouvrir le Fichier : Fichier_Parking "<<endl;
	return false;}
	
myfile<<P<<endl;
myfile.close();
return true;
}
/////////////////////////////////////////////////////////////V agence//////////////////////////////////////////////////////////////////////////////
bool Siege::VerifierExistanceAgence(long NumAgence)
{
ifstream myfile;
Agence k;
myfile.open(AgenceFileName.c_str());
	
if(!myfile.is_open())
{	cout<<"* Impossible d'ouvrir le Fichier : Fichier_Agence                                 *"<<endl;
	return false;}
else
{
	while(!myfile.eof())
	{
		myfile>>k;
		if(k.getNumAgence()==NumAgence)
		{	return false;}
	}
}	
myfile.close();
return true;	
}
/////////////////////////////////////////////////////////////A agence///////////////////////////////////////////////////////////////////////////////
bool Siege::AjouterAgence(const Agence& A)
{
ofstream myfile;
myfile.open(AgenceFileName.c_str(),ios::app);
	
if(!myfile.is_open())
{	cout<<"* Impossible d'ouvrir le Fichier : Fichier_Agence                                 *"<<endl;
	return false;}
myfile<<A<<endl;
myfile.close();
return true;
}
//////////////////////////////////////////////////////////////////V vehicule///////////////////////////////////////////////////////////////////////
bool Siege::VerifierExistanceVehicule(string NumMatricule)
{
ifstream myfile;
Vehicule V;
myfile.open(VehiculeFileName.c_str());

if(!myfile.is_open())
{	cout<<"impossible d'ouvrir le Fichier : Fichier_Vehicule                                  *"<<endl;
	return false;				
}
while(!myfile.eof())
{	myfile>>V;
	if(V.getNumMatricule().compare(NumMatricule)==0)
	{	myfile.close();					
		return false;
	}
}			
myfile.close();
return true;
}

//ajouter vehicule :
//////////////////////////////////////////////////////////////A vehicule/////////////////////////////////////////////////////////////////////////////
bool Siege::AjouterVehicule(const Vehicule& V)
{
ofstream myfile;
myfile.open(VehiculeFileName.c_str(),ios::app);

if(!myfile.is_open())
{	cout<<"impossible d'ouvrir le Fichier : Fichier_Véhicule "<<endl;
	return false;
}
				
myfile<<V<<endl;
myfile.close();			
return true;
}
///////////////////////////////////////////////////////////V vehicule utili/////////////////////////////////////////////////////////////////////////
bool Siege::VerifierExistanceVehiculeUtilitaire(string NumMatricule)
{
ifstream myfile;
VehiculeUtilitaire V;	
myfile.open(Vehicule_utilitaireFileName.c_str());

if(!myfile.is_open())
{	cout<<"impossible d'ouvrir le Fichier : Fichier_Vehicule_Utilitaire "<<endl;
	return false;				
}		
while(!myfile.eof())
{	myfile>>V;
	if(V.getNumMatricule().compare(NumMatricule)==0)
	{	myfile.close();					
		return false;
	}
}
myfile.close();
return true;
}
/////////////////////////////////////////////////////////Ajouter Vehicule utilit////////////////////////////////////////////////////////////////////
bool Siege::AjouterVehiculeUtilitaire( const VehiculeUtilitaire& V)
{
ofstream myfile;	
myfile.open(Vehicule_utilitaireFileName.c_str(),ios::app);
if(!myfile.is_open())
{	cout<<"impossible d'ouvrir le Fichier : Fichier_Vehicule_Utilitaire "<<endl;
	return false;
}
myfile<<V<<endl;
myfile.close();
return true;
}
//////////////////////////////////////////////////////////V vehicule touristique///////////////////////////////////////////////////////////////////
bool Siege::VerifierExistanceVehiculeTouristique(string NumMatricule)
{
ifstream myfile;
VehiculeTouristique V;	
myfile.open(Vehicule_touristiqueFileName.c_str());
if(!myfile.is_open())
{	cout<<"impossible d'ouvrir le Fichier : Fichier_Vehicule_Touristique "<<endl;
	return false;				
}
while(!myfile.eof())
{	myfile>>V;
	if(V.getNumMatricule().compare(NumMatricule)==0)
	{	myfile.close();
		return false;
	}
}
myfile.close();
return true;
}
//////////////////////////////////////////////////////////////A vehicule touristique///////////////////////////////////////////////////////////////
bool Siege::AjouterVehiculeTouristique( const VehiculeTouristique& V)
{					
ofstream myfile;
myfile.open(Vehicule_touristiqueFileName.c_str(),ios::app);

if(!myfile.is_open())
{	cout<<"impossible d'ouvrir le Fichier : Fichier_Vehicule_Touristique "<<endl;
	return false;
}			
myfile<<V<<endl;
myfile.close();
return true;
}
////////////////////////////////////////////////////////////surcharge operator/////////////////////////////////////////////////////////////////////

ifstream& operator>> (ifstream& in , Siege& A)
	{
	in>>A.Adresse;
	in>>A.IdentifiantAdmin;
	in>>A.NomAdmin;
	in>>A.Password;
	in>>A.Tel;
	in>>A.login;
	return in;
	}
